package com.chaoyue.content.service;



import com.chaoyue.content.beans.dto.CoursePreviewDto;
import com.chaoyue.content.beans.po.CoursePublish;

import java.io.File;

/**
 * @description: 课程预览 发布接口
 * @author whr
 * @date 2023/5/22 20:12
 * @version 1.0
 */
public interface CoursePublishService {
    /**
     * @description:  获取课程预览信息，即课程基本信息和教学计划
      * @param: courseId 课程id
     * @return: com.xuecheng.content.model.dto.CoursePreviewDto
     * @author whr
     * @date: 2023/5/22 20:14
     */
    CoursePreviewDto getCoursePreviewInfo(Long courseId);
    /**
     * @description:  课程提交审核
      * @param:  companyId 机构id
      * @param:  courseId 课程id
     * @return:  void
     * @author whr
     * @date: 2023/5/23 16:23
     */
     void commitAudit(Long companyId,Long courseId);
     /**
      * @description:  课程发布
       * @param:  companyId 机构id
       * @param:  courseId 课程id
      * @return:  void
      * @author whr
      * @date: 2023/5/24 14:07
      */
    void publish(Long companyId,Long courseId);
    /**
     * @description:  生成课程页面静态化html文件
      * @param: courseId 课程id
     * @return:  课程html文件
     * @author whr
     * @date: 2023/5/26 20:21
     */
    File generateCourseHtml(Long courseId);
    /**
     * @description:  远程调用media-api上传html文件到minio
      * @param:  courseId 课程id
      * @param:  file 课程html文件
     * @return:  void
     * @author whr
     * @date: 2023/5/26 20:37
     */
    void uploadCourseHtml(Long courseId, File file);
    CoursePublish selectCoursePublishById(Long courseId);
}
